package com.web.oa.service;

import com.web.oa.pojo.ActiveUser;
import com.web.oa.pojo.BaoxiaoBill;
import org.activiti.cdi.annotation.TaskId;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.task.Comment;
import org.activiti.engine.task.Task;

import java.io.InputStream;
import java.util.List;
import java.util.Map;

public interface WorkFlowService {
    //部署流程
    void addFlowProcess(InputStream fileName, String processName);
    //设置待办任务
    List<Task> findMyTaskList(String username);
    //保存报销单数据到数据库中
    void saveBaoxiaoBill(BaoxiaoBill baoxiaoBill);
    //启动报销流程
    void startBaoxiaoBill(Long id, ActiveUser activeUser);

    //先获取任务ID获取对应的请假单对象
    BaoxiaoBill findBaoxiaoBillByTaskId(String taskId);
    //获取与该任务相关联的历史批注信息列表
    List<Comment> findCommentListByTaskId(String taskId);
    //根据当前任务id查找当前活动完成后连接的所有连线名称列表
    List<String> findoutcomeListByTaskId(String taskId);
    //结束流程
    void submitTaskId(String taskId, String id, String comment, String outcome, String username);
    //查询部署流程对象信息
    List<Deployment> findDeploymentList();
    //查询流程定义信息
    List<ProcessDefinition> findProcessDefinitionList();
    //通过任务ID查询流程定义对象
    ProcessDefinition findProcessDefinitionByTaskId(String taskId);
    //查看当前活动,将坐标4个值存到map中
    Map<String, Object> findCoordingByTask(String taskId);

    InputStream findImagInputStream(String deploymentId, String imageName);

    Task findTaskByBussinessKey(String bussiness_key);

    List<Comment> findCommentListBillById(String bussiness_key);
    //删除部署信息流程
    void deleteDeploymentById(String deploymentId);

    void deleteBaoxiaoBillById(String id);


}
